package wm.model;

import java.util.*;

public class Producto {
	private int codigo;
	private String nombre;
	private String marca;
	private String modelo;
	private int estanteria;
	private String descripcion;
	private float precio;
	private Set<Unidad> unidades;
	private Set<Prevision> previsiones;	
	private Set<Historico> historicos;	
	
	public Producto(){
	}
	
	public Producto(int codigo, String nombre, String marca, String modelo, int estanteria, String descripcion, float precio) {
		//super();
		this.codigo = codigo;
		this.nombre = nombre;
		this.marca = marca;
		this.modelo = modelo;
		this.estanteria = estanteria;
		this.descripcion = descripcion;
		this.precio = precio;		
		this.unidades = new HashSet<Unidad>();
		this.previsiones = new HashSet<Prevision>();
		this.historicos = new HashSet<Historico>();
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca;
	}

	public String getModelo() {
		return modelo;
	}

	public void setModelo(String modelo) {
		this.modelo = modelo;
	}

	public int getEstanteria() {
		return estanteria;
	}

	public void setEstanteria(int estanteria) {
		this.estanteria = estanteria;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public float getPrecio() {
		return precio;
	}

	public void setPrecio(float precio) {
		this.precio = precio;
	}

	// ONE TO MANY
	
	public Set<Unidad> getUnidades() {
		return unidades;
	}

	public void setUnidades(Set<Unidad> unidades) {
		this.unidades = unidades;
	}
	
	public void addUnidad(Unidad unidad){
		this.unidades.add(unidad);
	}
	
	public void removeUnidad(Unidad unidad){
		this.unidades.remove(unidad);
	}
	
	// ONE TO MANY
	
	public Set<Prevision> getPrevisiones() {
		return previsiones;
	}

	public void setPrevisiones(Set<Prevision> previsiones) {
		this.previsiones = previsiones;
	}
	
	public void addPrevision(Prevision prevision){
		this.previsiones.add(prevision);
	}
	
	public void removePrevision(Prevision prevision){
		this.previsiones.remove(prevision);
	}
	
	// ONE TO MANY
	
	public Set<Historico> getHistoricos() {
		return historicos;
	}

	public void setHistoricos(Set<Historico> historicos) {
		this.historicos = historicos;
	}
	
	public void addHistorico(Historico historico){
		this.historicos.add(historico);
	}
	
	public void removeHistorico(Historico historico){
		this.historicos.remove(historico);
	}
	
	public String toString(){
		return "(" + this.codigo + "|" + this.nombre + "|" + this.marca + "|" + this.modelo + "|" + this.estanteria + "|" + this.descripcion +"|" + this.precio + ")";
	}
}